package com.kpmg.datalake.common.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.IService;
import com.kpmg.datalake.common.model.ComDict;
import com.kpmg.datalake.common.vo.ViewDictDTO;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 字典信息明细表 服务类
 * </p>
 *
 * @author azhao6
 * @since 2018-08-16
 */
public interface IComDictService extends IService<ComDict> {

  /**
   * 通过数据类型获取数据 默认当前系统语言
   *
   * @param dictType 数据类型
   * @return 数据
   */
  List<ViewDictDTO> getViewDictListByType(String dictType);

  /**
   * 通过数据类型获取数据
   *
   * @param dictType 数据类型
   * @param locale 语言
   * @return 数据
   */
  List<ViewDictDTO> getViewDictListByType(String dictType, String locale);

  /**
   * 通过数据类型获取数据
   *
   * @param dictType 数据类型
   * @param parentCode 过滤类型
   * @return 数据
   */
  List<ViewDictDTO> getViewDictListByTypeAndParent(String dictType, String parentCode);

  /**
   * 通过数据类型获取数据
   *
   * @param dictType 数据类型
   * @param parentCode 过滤类型
   * @param locale 语言
   * @return 数据
   */
  List<ViewDictDTO> getViewDictListByTypeAndParent(String dictType, String parentCode,
      String locale);

  /**
   * 通过数据类型获取数据
   *
   * @param page 分页对象信息
   * @param dictType 数据类型
   * @param parentCode 过滤类型
   * @param locale 语言
   * @return 数据
   */
  Page<ViewDictDTO> getViewDictPageByTypeAndParent(Page<ViewDictDTO> page, String dictType,
      String parentCode, String locale);

  /**
   * 通过数据类型获取数据
   *
   * @param dictType 数据类型
   * @param parentCode 过滤类型
   * @param locale 语言
   * @return 数据
   */
  Map<String, String> getViewDictMapByTypeAndParent(String dictType, String parentCode,
      String locale);

  /**
   * 通过数据类型获取数据
   *
   * @param dictType 数据类型
   * @param locale 语言
   * @return 数据
   */
  Map<String, String> getViewDictMapByType(String dictType, String locale);

  /**
   * 通过数据类型获取数据
   *
   * @param dictType 数据类型
   * @return 数据
   */
  Map<String, String> getViewDictMapByType(String dictType);
}
